As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems, including computer systems, typically include multiprocessor computer systems, wherein two or more processors may be coupled to a processor bus. During a start up or boot operation, one of the processors, commonly referred to as the boot processors, begins a power on self test and initializes the current setting of the computer system. One of these initializations includes a scan of the available memory present in the system.
The amount of available memory is typically stored in memory tables or registers. The other processors, generally referred to as the application processors, will read this table in order to determine where to cache. Following the boot up process, a static environment generally exist where the memory registers are known and synchronized by all processors.
During a memory hot plug event, the static environment has changed. Additional memory may not be recognized by the processors. And removed memory may cause a cache to an empty register and possibly crash the system.
One solution to this problem was to merely add the memory and use it in an “uncached” manner. However, the use of “uncached” memory suffers a performance loss. The loss may even be up to ninety percent of the installed memory. Thus, it is preferred for these ranges to be cached prior to use.